Rhino (moteur JavaScript)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
Rhino est un moteur JavaScript libre. Il est développé entièrement en Java par la Fondation Mozilla (qui fournit aussi SpiderMonkey, un moteur JavaScript écrit en C).
Netscape a commencé le projet Rhino en 1997 au début du développement de Javagator, un navigateur en Java destiné à supplanter leur navigateur déjà existant, Netscape Navigator. Javagator fut abandonné, mais Rhino survécut, et fut même licencié par de multiples entreprises, qui en financèrent le développement. La Fondation Mozilla a hérité de Rhino en 1998, et l'a rendu open source par la suite.
Contents
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Description technique
Rhino peut être utilisé seul, comme interpréteur, mais aussi intégré dans une application. De même, il est capable de fonctionner en mode interprété, tout comme en mode compilé.
Objets exposés par Rhino
Rhino ne fournit en principe que les objets natifs définis par la spécification du langage (exemples : String, Date, etc.). On n'y trouvera donc pas les objets habituellement exposés par les moteurs JavaScript des différents navigateurs (exemples : window, document, etc.).
Toutefois, son implémentation Java permet à un utilisateur d'utiliser tous les objets Java disponibles, comme le montre le code suivant (extrait de l'aide Mozillacite-ref-1[1]) :
js> f = new java.io.File("test.txt")
test.txt
Chacune des applications embarquant Rhino peut exposer ses propres fonctionnalités. Par exemple, en tant que navigateur web, Javagator aurait exposé un DOM HTML complet à Rhino, permettant la manipulation de l'environnement HTML via JavaScript.
Mode compilé et mode interprété
Rhino est capable de fonctionner en mode compilé (le script est alors compilé en bytecode Java, Rhino pouvant même générer des binaires .class et les associer à des packages), et en mode interprété (le script est alors compilé en objets JavaScript).
En mode compilé, Rhino peut rivaliser en performances avec SpiderMonkey, son équivalent implémenté en C, mais il serait toutefois victime de fuites de mémoirecite-ref-4[4]. En mode interprété, la compilation du script est plus rapide, et aucune fuite de mémoire n'a lieu, mais le script est alors plus lent.
Anecdotes
• L'animal de la couverture du livre JavaScript: The Definitive Guide de O'Reilly Mediacite-ref-5[5] a inspiré le nom Rhino.
• Le lien Java/JavaScript devient évident avec Rhino : le nom JavaScript avait été choisi pour des raisons de marketing, Netscape et Sun Microsystems ayant beaucoup collaboré à cette époquecite-ref-6[6]. Ensuite, Rhino devait devenir le moteur JavaScript dans le nouveau Javagator, le navigateur Java de Netscape. Après l'annulation de Javagator, Sun Microsystems a été l'une des compagnies ayant licencié Rhino, et c'est enfin Rhino qui a été inclus comme langage de script par défaut dans Java 6.
Notes et références
cite-note-11. ↑ (en) « Scripting Java »(Archive.org • Wikiwix • Archive.is • Google • Que faire ?), sur mozilla.org.
cite-note-22. ↑ (en) JavaScript Shell.
cite-note-33. ↑ o-connerjohn-o-conner(en) John O'Conner, « Scripting for the Java Platform »(Archive.org • Wikiwix • Archive.is • Google • Que faire ?), sur java.sun.com.
cite-note-44. ↑ (en) « Rhino History ».
cite-note-55. ↑ (en) Livre JavaScript: The Definitive Guide, 3rd Edition, O'Reilly Media.
cite-note-66. ↑ (en) « Netscape and Sun announce JavaScript, the Open, Cross-Platform Object Scripting Language for Enterprise Networks and the Internet », sur netscape.com.
Voir aussi
Liens externes
• (en) Rhino sur le site Fondation Mozilla
• Portail de l’informatique
• Portail des logiciels libres